package cn.wuxing.mediation.infoconfig.service;

import cn.wuxing.mediation.infoconfig.domain.dto.AddWindowUserDTO;
import cn.wuxing.mediation.infoconfig.domain.dto.EditWindowDTO;
import cn.wuxing.mediation.infoconfig.domain.dto.RemoveWindowUserDTO;
import cn.wuxing.mediation.infoconfig.domain.vo.IcWindowDetailVO;
import cn.wuxing.mediation.infoconfig.domain.vo.IcWindowListVO;
import cn.wuxing.mediation.infoconfig.domain.vo.WindowUserVO;
import java.util.List;

/**
 * 专窗管理 服务层
 *
 * @author mediation
 */
public interface IIcWindowService {

    /**
     * 获取专窗列表
     *
     * @param windowName
     * @return
     */
    List<IcWindowListVO> selectWindowList(String windowName);

    /**
     * 检查
     *
     * @param id
     * @return
     */
    Boolean checkWindowExistUser(Long id);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    int del(Long id);

    /**
     * 名称校验
     *
     * @param name
     * @return
     */
    boolean checkNameUnique(Long id, String name);

    /**
     * 修改
     *
     * @param dto
     * @return
     */
    int update(EditWindowDTO dto);

    /**
     * 添加
     *
     * @param dto
     * @return
     */
    int insert(EditWindowDTO dto);

    /**
     * 详情
     *
     * @param id
     * @return
     */
    IcWindowDetailVO detail(Long id);

    /**
     * 获取专窗人员
     *
     * @param windowId
     * @return
     */
    List<WindowUserVO> getWindowUserList(Long windowId);

    /**
     * 校验窗口用户
     *
     * @param dto
     * @return
     */
    boolean checkWindowUserUnique(AddWindowUserDTO dto);

    /**
     * 添加窗口用户
     *
     * @param dto
     * @return
     */
    void addWindowUser(AddWindowUserDTO dto);

    /**
     * 移除窗口用户
     *
     * @param dto
     */
    void removeWindowUser(RemoveWindowUserDTO dto);
}
